package com.easy.frame.common.process.core.getter;

import com.easy.frame.common.process.core.emum.ExaminePersonType;
import lombok.Getter;

import java.io.Serializable;
import java.util.Collection;

/**
 * 抽象节点审核人员信息获取类
 *
 * @author zzf
 * @date 2021/3/18 15:31
 */
public abstract class AbstractExaminePersonGetter implements Serializable {

    /**
     * 审核人员类型
     */
    @Getter
    private final ExaminePersonType examinePersonType;

    protected AbstractExaminePersonGetter(ExaminePersonType examinePersonType) {
        this.examinePersonType = examinePersonType;
    }

    /**
     * 获取审核人员id集合
     *
     * @param objectParam 可提供的参数
     *                    当{@code examinePersonType.type = OperationTargetTypeEnum.USER_FIELD}时为 用户对象
     *                    当{@code examinePersonType.type = OperationTargetTypeEnum.TARGET_FIELD}时为 流程绑定对象
     *                    当{@code examinePersonType.type = OperationTargetTypeEnum.TRIGGER_EVENT}时为 事件的返回值
     * @return 用户id集合
     */
    public abstract Collection<Long> getExaminePerson(Object objectParam);


}
